This invention relates to computer networks, and more particularly to prevention of unauthorized access to a local network from computers external to the local network.
Prevention of unauthorized access by outsiders to a computer network is a part of any network management program. This security problem has been complicated by recent trends in internetworking of a previously isolated private networks with value added networks, public networks (such as the internet), and with the networks of other enterprises.
Firewalls are one approach to preventing unauthorized access. Essentially, a firewall is a control layer inserted between an enterprise""s network and the outside. It permits only some traffic to pass through. The firewall is configured by the administrator of the local network based on the enterprise""s security policy. For example, the firewall may block traffic of a certain type, traffic from certain addresses, or traffic from all but a predetermined set of addresses.
Techniques used by network intruders for penetrating network system security have evolved in pace with sophisticated methods for detecting the intruders. Detection methods include software solutions, specifically, software intrusion detection systems, which continually monitor network traffic and look for known patterns of attack.
When an intrusion detection system detects inappropriate activity, it generates appropriate alarms and provides other responses while the attack is occurring. For example, the intrusion detection system might report the attack, log the attack, and terminate the misused connection.
One approach to intrusion detection relies on known patterns of unauthorized activity, referred to as xe2x80x9csignaturesxe2x80x9d. These signatures are stored, and, in real time, compared to the packet flow incoming to the network. If a match is found, the incoming datastream is assumed to be misused.
Many existing intrusion detection systems are host-based rather than network based. A host-based system resides on a particular host computer and detects only attacks to that host. A network-based system is connected at some point on a local network and detects attacks across the entire local network.
As an example of network-based intrusion detection, one known pattern of unauthorized access is associated with xe2x80x9cIP spoofingxe2x80x9d, whereby an intruder sends messages to a computer with an IP address indicating that the message is from a trusted port. To engage in IP spoofing, the intruder must first use a variety of techniques to find an IP address of a trusted port and must then modify the packet headers so that it appears that the packets are coming from that port. This activity results in a signature that can be detected when matched to a previously stored signature of the same activity.
For signature indicated by a single packet, the detection process can be as simple as matching a binary string of an incoming packet to a stored binary string. However, for composite signatures, the detection process often requires the use of procedural code, involving loops, counts, comparisons and other processing mechanisms. For this reason, it necessary for a skilled programmer to write the signatures.
One aspect of the invention is a method of describing signatures used for detecting intrusion to a local network. The method combines features of both regular expression methodology and logical expression methodology. A set of regular expression identifiers is used to represent a set of xe2x80x9csignature eventsxe2x80x9d. A xe2x80x9csignature eventxe2x80x9d may be a packet type, a sequence of packet types, or any one of a number of signature-related events, such as a count or a time period. Logical operators are used to describe relationships between the signature events, such as whether a count exceeds a certain value. For each signature, one or more of these identifiers and operators are combined to provide a regular expression describing that signature.
An advantage of the invention is that it provides an abstraction for describing intrusion signatures. The signatures are written in a descriptive language rather than in procedural computer code. Security technicians who work with local networks need not learn a programming language in order to describe signatures.